home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / efs_fs_i.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  69 lines

  1. /*
  2.  * efs_fs_i.h
  3.  *
  4.  * Copyright (c) 1999 Al Smith
  5.  *
  6.  * Portions derived from IRIX header files (c) 1988 Silicon Graphics
  7.  */
  8.  
  9. #ifndef    __EFS_FS_I_H__
  10. #define    __EFS_FS_I_H__
  11.  
  12. typedef    int32_t        efs_block_t;
  13. typedef uint32_t    efs_ino_t;
  14.  
  15. #define    EFS_DIRECTEXTENTS    12
  16.  
  17. /*
  18.  * layout of an extent, in memory and on disk. 8 bytes exactly.
  19.  */
  20. typedef union extent_u {
  21.     unsigned char raw[8];
  22.     struct extent_s {
  23.         unsigned int    ex_magic:8;    /* magic # (zero) */
  24.         unsigned int    ex_bn:24;    /* basic block */
  25.         unsigned int    ex_length:8;    /* numblocks in this extent */
  26.         unsigned int    ex_offset:24;    /* logical offset into file */
  27.     } cooked;
  28. } efs_extent;
  29.  
  30. typedef struct edevs {
  31.     __be16        odev;
  32.     __be32        ndev;
  33. } efs_devs;
  34.  
  35. /*
  36.  * extent based filesystem inode as it appears on disk.  The efs inode
  37.  * is exactly 128 bytes long.
  38.  */
  39. struct    efs_dinode {
  40.     __be16        di_mode;    /* mode and type of file */
  41.     __be16        di_nlink;    /* number of links to file */
  42.     __be16        di_uid;        /* owner's user id */
  43.     __be16        di_gid;        /* owner's group id */
  44.     __be32        di_size;    /* number of bytes in file */
  45.     __be32        di_atime;    /* time last accessed */
  46.     __be32        di_mtime;    /* time last modified */
  47.     __be32        di_ctime;    /* time created */
  48.     __be32        di_gen;        /* generation number */
  49.     __be16        di_numextents;    /* # of extents */
  50.     u_char        di_version;    /* version of inode */
  51.     u_char        di_spare;    /* spare - used by AFS */
  52.     union di_addr {
  53.         efs_extent    di_extents[EFS_DIRECTEXTENTS];
  54.         efs_devs    di_dev;    /* device for IFCHR/IFBLK */
  55.     } di_u;
  56. };
  57.  
  58. /* efs inode storage in memory */
  59. struct efs_inode_info {
  60.     int        numextents;
  61.     int        lastextent;
  62.  
  63.     efs_extent    extents[EFS_DIRECTEXTENTS];
  64.     struct inode    vfs_inode;
  65. };
  66.  
  67. #endif    /* __EFS_FS_I_H__ */
  68.  
  69.